package com.weixing.mall.provider.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.weixing.mall.provider.model.domain.Order;
import com.weixing.mall.provider.model.query.FrontShipperReprotQuery;
import com.weixing.mall.provider.model.query.GoodTransRepotDetailsQuery;
import com.weixing.mall.provider.model.query.GoodTransRepotQuery;
import com.weixing.mall.provider.model.vo.report.GoodTransRepotDetailsVo;
import com.weixing.mall.provider.model.vo.report.FrontShipperReprot;
import com.weixing.mall.provider.model.vo.report.GoodTransRepotVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 发货部前端报表
 */
public interface FrontShipperRpoertMapper  extends BaseMapper<Order> {


    /**
     * 日发货报表
     * @param frontShipperReprotQuery
     * @return
     */
    IPage<FrontShipperReprot> dayRepot(@Param("pg")IPage page, @Param("qs") FrontShipperReprotQuery frontShipperReprotQuery);

    /**
     * 月发货报表
     * @param frontShipperReprotQuery
     * @return
     */

    IPage<FrontShipperReprot>  monthRepot(@Param("pg")IPage page, @Param("qs") FrontShipperReprotQuery frontShipperReprotQuery);

    /**
     * 发货报表首页
     * @return
     */
    Map<String,Object> total();

    /**
     * 日发货合计
     * @param frontShipperReprotQuery
     * @return
     */
    FrontShipperReprot dayRepotTotal( @Param("qs") FrontShipperReprotQuery frontShipperReprotQuery);

    /**
     * 月发货报表合计
     * @param frontShipperReprotQuery
     * @return
     */
    FrontShipperReprot  monthRepotTotal( @Param("qs") FrontShipperReprotQuery frontShipperReprotQuery);

    Long getDay(@Param("uid") Long uid,@Param("day") String day);

    Long getMonth(@Param("uid") Long uid,@Param("month")String month);

    /**
     * 调拨单报表
     * @param page
     * @param goodTransRepotQuery
     * @return
     */
    IPage<GoodTransRepotVo> goodTransRepotList(@Param("pg")IPage page, @Param("qs") GoodTransRepotQuery goodTransRepotQuery);

    /**
     * 调拨单整体情况
     * @param goodTransRepotQuery
     * @return
     */
    GoodTransRepotVo  goodTransRepotTotal (@Param("qs") GoodTransRepotQuery goodTransRepotQuery);

    /**
     * 调拨单详情
     * @param goodTransRepotDetailsQuery
     * @return
     */
    List<GoodTransRepotDetailsVo>  goodTransRepotDetails (@Param("qs") GoodTransRepotDetailsQuery goodTransRepotDetailsQuery);
}
